// Construct.h: interface for the CConstruct class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_CONSTRUCT_H__126E1B41_A791_11D5_AD10_20D856C10027__INCLUDED_)
#define AFX_CONSTRUCT_H__126E1B41_A791_11D5_AD10_20D856C10027__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Efx.h"

class CConstruct : public CEfx  
{
private:
	
	he3d_CScene				m_sConstuct;

	he3d_CSegmentedMesh*	m_psmConstruct;
	he3d_CSegmentedMesh*	m_psmStuff[3];

	PDIRECT3DVERTEXBUFFER8	m_pvbTunnel;	
	PDIRECT3DVERTEXBUFFER8	m_pvbCircles;
	
	PDIRECT3DVERTEXBUFFER8	m_pvbZoom;
	PDIRECT3DVERTEXBUFFER8	m_pvbSphere;

	he3d_CVector			m_vSphere[202];	
	he3d_CVector			m_vEmiter[6];

	FLOAT					m_fCoeff;

	CImageQuad*				m_piqFade;
	BOOL					m_bRenderFade;

	he3d_CVector			m_vConstrucCenter;
	he3d_CMatrix			m_mtxCamera1;

	CTextureRenderer*		m_ptrZoom;

	CImageQuad*				m_piqZoom;

	D3DMATRIX				m_d3dmtxProj;
	D3DMATRIX				m_d3dmtxView;

	CImageQuad*				m_piqMask;
	CImageQuad*				m_piqDisplay1;
	CImageQuad*				m_piqDisplay2;

	FLOATKEY				m_fSync[6][100];
	DWORD					m_dwKeyCount[6];

	FLOATKEY				m_fSecSync[2][100];
	DWORD					m_dwSecKeyCount[2];

public:

	CConstruct( PDIRECT3DDEVICE8 pDevice );
	virtual ~CConstruct();

	virtual BOOL UpdateFrame( FLOAT fTime );
	virtual BOOL RenderEfx();

};

#endif // !defined(AFX_CONSTRUCT_H__126E1B41_A791_11D5_AD10_20D856C10027__INCLUDED_)
